/**
 * @author Houjun Liu
 * 
 */
package algorithmus;

public interface ClusteringAlgorithm extends Runnable {

    public static final int EVENT_ALGORITHM_READY = 3101;
    public static final int EVENT_ALGORITHM_RUN = 3102;
    public static final int EVENT_ALGORITHM_PAUSE = 3103;
    public static final int EVENT_ALGORITHM_STOP = 3104;


    public void pause();

    /**
     * 
     * The <code>stop()</code> method stop the execution. As it is non blocking,
     * it returns immediately.
     *
     * @since 1
     * 
     **/
    public void stop();

    /**
     * 
     * The <code>resumes()</code> method resumes the execution. As it is non blocking,
     * it returns immediately.
     *
     * @since 1
     * 
     **/
    public void resume();

    /**
     * 
     * The <code>reset()</code> method stops the execution and resets it afterwards. As it
     * is non blocking, it returns immediately. 
     *
     * @since 1
     * 
     **/
    public void reset();
}
